		x = 0;
		y = 0;
		xSlider = 0;
		a = 0;
		colorInterval = Dim.width / ( numberOfColorsInTheRainbow - 1 );
		numberOfClockHands = 16;
		colorDisplacement = 0;//For Rainbow Disk And 0 Rainbow Clock
		radialDistance = Math.pow(Math.pow(HalfedDim.width + 1, 2) + Math.pow(HalfedDim.height + 1, 2), 0.5);
		angle = 0;
		radius = 0;
		fullAngle = Math.PI * radialDistance;
		interval = fullAngle / 2 / fRateDivisor;//Last Division Determines The Frame Rate
		colorInterval = fullAngle / ( numberOfColorsInTheRainbow - 1 );//For Rainbow Clock And Spiral
		
		while (xSlider < fullAngle / 10 )
		{//0.175979734764 * 
			//Dim = f.getSize();//Dim = f.getContentPane().getSize();
			HalfedDim.width = Math.round( ( Dim.width + 1 ) / 2 - 1 );
			HalfedDim.height = Math.round( ( Dim.height + 1 ) / 2 - 1 );
			radialDistance = Math.pow(Math.pow(HalfedDim.width + 1, 2) + Math.pow(HalfedDim.height + 1, 2), 0.5);
			colorDisplacement = 0;//For Rainbow Disk
			for (x = 0; x < Dim.width; x++)//Comment Out Here For Circular Rainbow
			{//Comment Out Here For Circular Rainbow
				for (y = 0; y < Dim.height; y++)
				{
					angle = Math.atan2( (x - HalfedDim.width + 1) , (y - Dim.height * 4 / 3 + 1 ) );// For Rising Sun + 1
					a = ( angle * /*Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)*/ Math.tan( angle ) /*+ Math.PI*/ )  * radialDistance / 4.46783504 + xSlider;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * /*Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)*/ Math.tan( angle ) + Math.PI )  * radialDistance / 4.46783504 - xSlider;  //a = ( angle /*Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)*/ Math.tan( angle ) + Math.PI )  * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider; */
					radius = a * 10;
					// *///For Old Infinite Number Theorem Use Above
					//radius = a * 10;//For Rainbow Spiral And Clock
					//}
					while ( radius < colorDisplacement)//For Rainbow Ring
						radius = radius + fullAngle - colorDisplacement;//BAD COMMENT: For Rainbow Ring Take Out - 38
					while ( radius > fullAngle )//radius > fullAngle For Non Infinite Number Theorem
						radius = radius - fullAngle - colorDisplacement; //radius = radius - fullAngle; For Non Infinite Number Theorem //For Rainbow Clock Comment Out To Here. Here -- */
					if ( radius >= colorDisplacement && radius < (numberOfColorsInTheRainbow - 1) * colorInterval  + colorDisplacement)//For Purple Outside Ring
					{
						if ( origionalpr.getArgb(x, y) == pixiePink )
							if ( radius < colorInterval  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
								color.ColorSliderFunction(colorInterval, radius - colorDisplacement, purple, blue);
							else if ( radius < ( 2 * colorInterval  + colorDisplacement) )
								color.ColorSliderFunction(colorInterval, radius - colorInterval - colorDisplacement, blue, teal);
							else if ( radius < ( 3 * colorInterval  + colorDisplacement) )		
								color.ColorSliderFunction(colorInterval, radius - 2 * colorInterval - colorDisplacement, teal, pink);
							else if ( radius < ( 4 * colorInterval  + colorDisplacement) )
								color.ColorSliderFunction(colorInterval, radius - 3 * colorInterval - colorDisplacement, pink, yellow);
							else if ( radius < ( 5 * colorInterval  + colorDisplacement) )
								color.ColorSliderFunction(colorInterval, radius - 4 * colorInterval - colorDisplacement, yellow, orange);
							else
								color.ColorSliderFunction(colorInterval, radius - 5 * colorInterval - colorDisplacement, orange, red);
						else//*/
							if ( radius < colorInterval  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
								color.ColorSliderFunction(colorInterval, radius - colorDisplacement, red, orange);
							else if ( radius < ( 2 * colorInterval  + colorDisplacement) )
								color.ColorSliderFunction(colorInterval, radius - colorInterval - colorDisplacement, orange, yellow);
							else if ( radius < ( 3 * colorInterval  + colorDisplacement) )		
								color.ColorSliderFunction(colorInterval, radius - 2 * colorInterval - colorDisplacement, yellow, green);
							else if ( radius < ( 4 * colorInterval  + colorDisplacement) )
								color.ColorSliderFunction(colorInterval, radius - 3 * colorInterval - colorDisplacement, green, teal);
							else if ( radius < ( 5 * colorInterval  + colorDisplacement) )
								color.ColorSliderFunction(colorInterval, radius - 4 * colorInterval - colorDisplacement, teal, blue);
							else
								color.ColorSliderFunction(colorInterval, radius - 5 * colorInterval - colorDisplacement, blue, purple);//*
					}
					//Use To //*/ For Rainbow Clock
					/*double angle = ( Math.atan2( (x - HalfedDim.width + 1) , (y - HalfedDim.height + 1 ) ) + Math.PI ) * radialDistance + xSlider;
					if (angle < 0)
						angle = angle + fullAngle / numberOfClockHands;
					else
						while (angle > fullAngle / numberOfClockHands)
							angle = angle - fullAngle / numberOfClockHands;
					//angle = 0;//Testing Purposes Only.
					if ( angle < colorInterval)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorInterval, angle, red, orange);
					else if ( angle < 2 * colorInterval )
						color.ColorSliderFunction(colorInterval, angle - colorInterval, orange, yellow);
					else if ( angle < 3 * colorInterval )		
						color.ColorSliderFunction(colorInterval, angle - 2 * colorInterval, yellow, green);
					else if ( angle < 4 * colorInterval )
						color.ColorSliderFunction(colorInterval, angle - 3 * colorInterval, green, teal);
					else if ( angle <  5 * colorInterval )
						color.ColorSliderFunction(colorInterval, angle - 4 * colorInterval, teal, blue);
					else
						color.ColorSliderFunction(colorInterval, angle - 5 * colorInterval, blue, purple);//*/

					pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.RGB[0] * 65536 + (int)color.RGB[1] * 256 + (int)color.RGB[2]));//setArgb
				}
			}
			imageView.setImage(writableImage);

			stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1] = new StackPane();
			stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1].getChildren().add(imageView);
			//stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1].getChildren().add(browser);
			scene[(int)(fRateDivisor * xSlider/fullAngle) + 1] = new Scene(stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1]);
			primaryStage.setScene(scene[(int)(fRateDivisor * xSlider/fullAngle) + 1]);

			System.out.println(Dim);

			primaryStage.setFullScreen(true);

			primaryStage.show();

			if (xSlider == (int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHands / 2)
			{
				File outputFile = new File("C:/TestImage.png");
				BufferedImage bImage = SwingFXUtils.fromFXImage(scene[(int)(fRateDivisor * xSlider/fullAngle) + 1].snapshot(null), null);
				try {
					ImageIO.write(bImage, "png", outputFile);
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			enc.encodeImage( SwingFXUtils.fromFXImage(scene[(int)(fRateDivisor * xSlider/fullAngle) + 1].snapshot(null), null ) );
			//enc.encodeImage( SwingFXUtils.fromFXImage( imageView.getImage(), null ) );


			xSlider = xSlider + interval;
			System.out.println(Dim);
			//}
			//Thread.sleep(2000);}
			//catch (Exception ex) {ex.printStackTrace();}
		}